package com.sunwayhorizo.health.business.integration.converter;

import javax.ejb.Local;

import com.sunwayhorizo.health.business.dto.patad.encounter.PatientEncounterDTO;
import com.sunwayhorizo.health.business.dto.registries.EntitysDTO;
import com.sunwayhorizo.health.business.integration.model.*;
import com.sunwayhorizo.health.ets.exceptions.*;
import com.sunwayhorizo.health.hl7.common.Hl7Exception;

@Local
public interface ConverterLocal {

	/**
	 * 患者基本信息映射模型转换成患者dto
	 * @Title convertToEntitysDTO
	 * @param patientInfo
	 *            患者信息映射模型
	 * @return EntitysDTO 返回患者DTO
	 * @throws ETSBadParameterException
	 *             ,ETSDataException
	 * @firstAuthor obama
	 * @firstTime 2011-03-28 15:22:15
	 * @lastAuthor obama
	 * @lastTime 2011-03-28 15:22:24
	 */
	EntitysDTO convertToEntitysDTO(PatientInfo patientInfo)
			throws ETSBadParameterException, ETSDataException;
	
	/**
	 * 患者入院信息映射模型转换成患者入院dto
	 * @Title convertToEntitysDTO
	 * @param patientInfo
	 *            患者信息映射模型
	 * @return PatientEncounterDTO 返回患者入院DTO
	 * @throws ETSBadParameterException
	 *             ,ETSDataException
	 * @throws Hl7Exception 
	 * @firstAuthor obama
	 * @firstTime 2011-03-29 09:00:15
	 * @lastAuthor obama
	 * @lastTime 2011-03-29 09:00:24
	 */
	PatientEncounterDTO convertToPatientEncounterDTO(InHospitalInfo inHospitalInfo)
			throws ETSBadParameterException, ETSDataException, Hl7Exception;
	
	/**
	 * 患者状态信息映射模型转换成患者入转出dto
	 * @Title convertToEntitysDTO
	 * @param PatientStatusInfo
	 *            患者状态信息映射模型
	 * @return PatientEncounterDTO 返回患者入院DTO
	 * @throws ETSBadParameterException
	 *             ,ETSDataException
	 * @throws Hl7Exception ,ETSDataException,ETSBadParameterException
	 * @firstAuthor obama
	 * @firstTime 2011-03-29 21:22:15
	 * @lastAuthor obama
	 * @lastTime 2011-03-29 21:22:24
	 */
	PatientEncounterDTO convertToPatientEncounterDTO(PatientStatusInfo patientStatusInfo)
			throws ETSBadParameterException, ETSDataException, Hl7Exception;

    PatientEncounterDTO setReceivingDoctor(PatientStatusInfo info, PatientEncounterDTO dto);
}
